package com.xingchi.tornado.storage.core.service;

import com.xingchi.tornado.mybatisplus.service.BasePlusService;
import com.xingchi.tornado.storage.core.model.dto.FileChunkCheckDTO;
import com.xingchi.tornado.storage.core.model.dto.FileChunkDTO;
import com.xingchi.tornado.storage.core.model.dto.FileChunkMergeDTO;
import com.xingchi.tornado.storage.core.model.dto.FileChunkQueryDTO;
import com.xingchi.tornado.storage.core.model.dto.FileChunkUploadDTO;
import com.xingchi.tornado.storage.core.model.dto.FileUserRelDTO;
import com.xingchi.tornado.storage.core.model.vo.FileChunkUploadVO;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author xingchi
 * @date 2025-01-11 15:15
 */
public interface FileChunkService extends BasePlusService<FileChunkDTO, FileChunkQueryDTO> {

    /**
     * 上传分片
     *
     * @param fileChunkUpload 分片信息
     * @return 分片上传结果
     */
    FileChunkUploadVO uploadChunk(FileChunkUploadDTO fileChunkUpload);

    /**
     * 合并分片
     *
     * @param info 合并信息
     * @return 最终的文件URL
     */
    FileUserRelDTO mergeChunks(FileChunkMergeDTO info);

    /**
     * 校验文件分片上传信息
     *
     * @param info 文件分片上传信息
     * @return 校验结果
     */
    FileChunkUploadVO checkChunk(FileChunkCheckDTO info);
}
